package io;

/**
 * @author IT枫斗者
 * @ClassName RecursionDemo.java
 * @From www.javatiaozao.com
 * @Description TODO
 */
public class RecursionDemo {
    public static void main(String[] args) {
        //需求： 求 5 的阶乘.
        //分析需求：5！= 5*4*3*2*1
        //找规律：5！= 5* 4！
//                         4！= 4 * 3！
//                                  3! = 3 * 2!
//                                           2! = 2 * 1!
//                                                     1! = 1
        //如果5替换成n: n! = n * (n-1)!
        //递归结束条件：`递归调用` 必须要求递归中有可以让方法调用结束的条件
        //if(n==1) {return 1} 结束条件

        //程序实现递归求阶乘
        int result = getFactorial(500000000);
        System.out.println(result);
    }

    //阶乘计算方法
    private static int getFactorial(int n) {
        if(n==1)  {
            return 1;
        }else {
            return n * getFactorial(n-1);
//            return n* = getFactorial(n-1);
        }
    }


}
